@@ -183,7 +183,7 @@ def DJANGO_WE_COMPONENT_CALLBACK_FUNC(request, appid, data, decrypted=None):  | 
            ||
| 183 | 183 | 
                )  | 
            
| 184 | 184 | 
                # send_custom_card_message(  | 
            
| 185 | 185 | 
                # openid=openid,  | 
            
| 186 | 
                - # card_id=settings.DJANGO_WE_MEMBER_CARD_ID,  | 
            |
| 186 | 
                + # card_id=settings.MEMBER_CARD_ID_HANYUAN,  | 
            |
| 187 | 187 | 
                # appid=appid,  | 
            
| 188 | 188 | 
                # secret=None,  | 
            
| 189 | 189 | 
                # token=token,  | 
            
                @@ -237,8 +237,8 @@ WECHAT = {
               | 
            ||
| 237 | 237 | 
                },  | 
            
| 238 | 238 | 
                }  | 
            
| 239 | 239 | 
                 | 
            
| 240 | 
                -MEMBER_CARD_ID = ''  | 
            |
| 241 | 
                -DJANGO_WE_MEMBER_CARD_ID = ''  | 
            |
| 240 | 
                +MEMBER_CARD_ID_TAMRON = ''  | 
            |
| 241 | 
                +MEMBER_CARD_ID_HANYUAN = ''  | 
            |
| 242 | 242 | 
                 | 
            
| 243 | 243 | 
                # 七牛设置  | 
            
| 244 | 244 | 
                 QINIU = {
               | 
            
                @@ -271,7 +271,7 @@ def membercard_extradata(request):  | 
            ||
| 271 | 271 | 
                     appid = wxcfg.get('appID')
               | 
            
| 272 | 272 | 
                     secret = wxcfg.get('appsecret')
               | 
            
| 273 | 273 | 
                 | 
            
| 274 | 
                - extraData = get_miniapp_extraData(settings.MEMBER_CARD_ID, outer_str='miniapp', appid=appid, secret=secret, storage=RedisStorage(r))  | 
            |
| 274 | 
                + extraData = get_miniapp_extraData(settings.MEMBER_CARD_ID_TAMRON, outer_str='miniapp', appid=appid, secret=secret, storage=RedisStorage(r))  | 
            |
| 275 | 275 | 
                 | 
            
| 276 | 276 | 
                     return response(200, 'Get extraData Success', u'获取 extraData 成功', {
               | 
            
| 277 | 277 | 
                         'encrypt_card_id': extraData.get('encrypt_card_id', ''),
               | 
            
                @@ -2,14 +2,8 @@  | 
            ||
| 2 | 2 | 
                <head>  | 
            
| 3 | 3 | 
                <meta charset="utf-8" />  | 
            
| 4 | 4 | 
                <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />  | 
            
| 5 | 
                - <meta  | 
            |
| 6 | 
                - name="format-detection"  | 
            |
| 7 | 
                - content="telephone=no,email=no,address=no"  | 
            |
| 8 | 
                - />  | 
            |
| 9 | 
                - <meta  | 
            |
| 10 | 
                - name="viewport"  | 
            |
| 11 | 
                - content="width=device-width,initial-scale=1.0,user-scalable=no"  | 
            |
| 12 | 
                - />  | 
            |
| 5 | 
                + <meta name="format-detection" content="telephone=no,email=no,address=no" />  | 
            |
| 6 | 
                + <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />  | 
            |
| 13 | 7 | 
                <title>腾龙镜头保修规定</title>  | 
            
| 14 | 8 | 
                </head>  | 
            
| 15 | 9 | 
                <body style="font: 10pt Arial, sans-serif">  | 
            
                @@ -20,14 +14,8 @@  | 
            ||
| 20 | 14 | 
                <ul>  | 
            
| 21 | 15 | 
                <li>a. 不能出示有效保修卡以及购买原始发票。</li>  | 
            
| 22 | 16 | 
                <li>b. 私自修理、改造、分解、清洁等造成的故障。</li>  | 
            
| 23 | 
                - <li>  | 
            |
| 24 | 
                - c.  | 
            |
| 25 | 
                - 未遵守使用说明书而进行错误操作、维护,在恶劣环境下使用而造成的故障。  | 
            |
| 26 | 
                - </li>  | 
            |
| 27 | 
                - <li>  | 
            |
| 28 | 
                - d.  | 
            |
| 29 | 
                - 震动、摔落、进水、受潮、进沙土、进灰、发霉等不当保管造成的故障。  | 
            |
| 30 | 
                - </li>  | 
            |
| 17 | 
                + <li>c. 未遵守使用说明书而进行错误操作、维护,在恶劣环境下使用而造成的故障。</li>  | 
            |
| 18 | 
                + <li>d. 震动、摔落、进水、受潮、进沙土、进灰、发霉等不当保管造成的故障。</li>  | 
            |
| 31 | 19 | 
                <li>e. 正常磨耗和自然灾害所造成的故障。</li>  | 
            
| 32 | 20 | 
                </ul>  | 
            
| 33 | 21 | 
                <p>3. 以下情况可能拒绝维修:</p>  | 
            
                @@ -1,8 +1,8 @@  | 
            ||
| 1 | 1 | 
                CodeConvert==3.0.2  | 
            
| 2 | 2 | 
                Pillow==5.0.0  | 
            
| 3 | 3 | 
                StatusCode==1.0.0  | 
            
| 4 | 
                -TimeConvert==1.5.2  | 
            |
| 5 | 
                -furl==2.1.0  | 
            |
| 4 | 
                +TimeConvert==1.5.4  | 
            |
| 5 | 
                +furl==2.1.2  | 
            |
| 6 | 6 | 
                isoweek==1.3.3  | 
            
| 7 | 7 | 
                jsonfield==3.1.0  | 
            
| 8 | 8 | 
                mock==2.0.0  | 
            
                @@ -5,16 +5,16 @@ pywe-component-authorizer-token==1.1.1  | 
            ||
| 5 | 5 | 
                pywe-component-preauthcode==1.0.3  | 
            
| 6 | 6 | 
                pywe-jssdk==1.1.0  | 
            
| 7 | 7 | 
                pywe-marketcode==1.0.3  | 
            
| 8 | 
                -pywe-membercard==1.0.3  | 
            |
| 8 | 
                +pywe-membercard==1.0.4  | 
            |
| 9 | 9 | 
                pywe-custom-message==1.0.1  | 
            
| 10 | 10 | 
                pywe-event-message==1.0.1  | 
            
| 11 | 11 | 
                pywe-subscribe-message==1.0.1  | 
            
| 12 | 
                -pywe-template-message==1.0.0  | 
            |
| 12 | 
                +pywe-template-message==1.0.1  | 
            |
| 13 | 13 | 
                pywe-miniapp==1.1.6  | 
            
| 14 | 14 | 
                pywe-oauth==1.1.1  | 
            
| 15 | 15 | 
                pywe-pay==1.0.13  | 
            
| 16 | 16 | 
                pywe-pay-notify==1.0.5  | 
            
| 17 | 
                -pywe-qrcode==1.0.0  | 
            |
| 17 | 
                +pywe-qrcode==1.0.3  | 
            |
| 18 | 18 | 
                pywe-response==1.0.1  | 
            
| 19 | 19 | 
                pywe-sign==1.1.0  | 
            
| 20 | 20 | 
                pywe-storage==1.0.1  | 
            
                @@ -1,3 +1,3 @@  | 
            ||
| 1 | 
                -hiredis==1.1.0  | 
            |
| 1 | 
                +hiredis==2.0.0  | 
            |
| 2 | 2 | 
                redis==2.10.6  | 
            
| 3 | 3 | 
                redis-extensions==1.2.5  | 
            
                @@ -1,32 +1,17 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 
                +from django.conf import settings  | 
            |
| 3 | 4 | 
                from pywe_media import Media  | 
            
| 4 | 
                -from pywe_membercard import MemberCard  | 
            |
| 5 | 
                +from pywe_membercard import membercard_update  | 
            |
| 6 | 
                +from pywe_storage import RedisStorage  | 
            |
| 5 | 7 | 
                 | 
            
| 8 | 
                +from utils.redis.connect import r  | 
            |
| 6 | 9 | 
                 | 
            
| 7 | 
                -WECHAT = {
               | 
            |
| 8 | 
                -    'JSAPI': {
               | 
            |
| 9 | 
                - 'token': 'token',  | 
            |
| 10 | 
                - 'appID': '', # 腾龙(服务号)  | 
            |
| 11 | 
                - 'appsecret': '',  | 
            |
| 12 | 
                - 'mchID': 'mchID',  | 
            |
| 13 | 
                - 'apiKey': 'apiKey',  | 
            |
| 14 | 
                - 'mch_cert': 'mch_cert',  | 
            |
| 15 | 
                - 'mch_key': 'mch_key',  | 
            |
| 16 | 
                -        'redpacket': {
               | 
            |
| 17 | 
                - 'SEND_NAME': u'SEND_NAME',  | 
            |
| 18 | 
                - 'NICK_NAME': u'NICK_NAME',  | 
            |
| 19 | 
                - 'ACT_NAME': u'ACT_NAME',  | 
            |
| 20 | 
                - 'WISHING': u'WISHING!',  | 
            |
| 21 | 
                - 'REMARK': u'REMARK',  | 
            |
| 22 | 
                - }  | 
            |
| 23 | 
                - },  | 
            |
| 24 | 
                -}  | 
            |
| 10 | 
                +  | 
            |
| 11 | 
                +WECHAT = settings.WECHAT  | 
            |
| 25 | 12 | 
                 | 
            
| 26 | 13 | 
                 appid = WECHAT.get('JSAPI', {}).get('appID')
               | 
            
| 27 | 14 | 
                 appsecret = WECHAT.get('JSAPI', {}).get('appsecret')
               | 
            
| 28 | 
                -# http://kodo.tamron.cn/we/token/  | 
            |
| 29 | 
                -token = ''  | 
            |
| 30 | 15 | 
                 | 
            
| 31 | 16 | 
                # media = Media(appid=appid, secret=appsecret, token=token)  | 
            
| 32 | 17 | 
                 # background_pic_url = media.uploadimg(media_file_path='/home/media.jpg').get('url', '')
               | 
            
                @@ -34,8 +19,6 @@ token = ''  | 
            ||
| 34 | 19 | 
                 # logo_url = media.uploadimg(media_file_path='/home/media.jpg').get('url', '')
               | 
            
| 35 | 20 | 
                # print(logo_url)  | 
            
| 36 | 21 | 
                 | 
            
| 37 | 
                -MEMBER_CARD_ID = '' # 腾龙(服务号)  | 
            |
| 38 | 
                -  | 
            |
| 39 | 22 | 
                 MEMBER_CARD = {
               | 
            
| 40 | 23 | 
                "background_pic_url": "https://mmbiz.qlogo.cn/mmbiz/0?wx_fmt=jpeg",  | 
            
| 41 | 24 | 
                     "base_info": {
               | 
            
                @@ -115,7 +98,7 @@ MEMBER_CARD_CREATE_INFO = {
               | 
            ||
| 115 | 98 | 
                }  | 
            
| 116 | 99 | 
                 | 
            
| 117 | 100 | 
                 MEMBER_CARD_UPDATE_INFO = {
               | 
            
| 118 | 
                - "card_id": MEMBER_CARD_ID,  | 
            |
| 101 | 
                + "card_id": settings.MEMBER_CARD_ID_TAMRON,  | 
            |
| 119 | 102 | 
                     "member_card": {
               | 
            
| 120 | 103 | 
                "background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/FwEqNFmHjnrURYGmgRpFaGUbx38LzuTjKbIogsXOgzExibIq5fkwMtMvVsknG0Sh70sVXeEjZgtkxQmIOd9uiaRg/0",  | 
            
| 121 | 104 | 
                         "base_info": {
               | 
            
                @@ -127,7 +110,7 @@ MEMBER_CARD_UPDATE_INFO = {
               | 
            ||
| 127 | 110 | 
                'get_limit': 0,  | 
            
| 128 | 111 | 
                "notice": u" ",  | 
            
| 129 | 112 | 
                "service_phone": "",  | 
            
| 130 | 
                - "description": u"1、该电子保修卡仅限本人使用;\n2、该保修服务仅适用于中国大陆地区销售的腾龙正规产品,非正品行货产品无法享受此服务;\n3、5+1增值保修服务起始日以发票或订单的购买日期为准;\n4、双休日以及法定节假日不提供维修,敬请谅解。详情请见腾龙官方网站“服务与支持”页面信息(http://www.tamron.com.cn/service/index.shtml);\n5、腾龙光学(上海)有限公司对在中国大陆地区销售的腾龙公司正规产品提供5年免费维修服务。在按照使用说明书正常使用的情况下,如果出现故障现象,请凭保修卡以及正规原始发票进行免费保修(保险、运费以及其他连带费用除外);\n6、以下情况属于收费维修范围: a. 不能出示有效保修卡以及购买原始发票。b. 私自修理、改造、分解、清洁等造成的故障。c. 未遵守使用说明书而进行错误操作、维护,在恶劣环境下使用而造成的故障。d. 震动、摔落、进水、受潮、进沙土、进灰、发霉等不当保管造成的故障。e. 正常磨耗和自然灾害所造成的故障;\n7、以下情况可能拒绝维修:a. 产品损毁严重已无维修价值。b. 私自拆解造成产品50%以上的解体。c. 产品停产超过7年。;\n8、前盖、后盖、遮光罩、脚架接环等配件不属于免费保修范围;\n9、保修卡和保修规定仅限在中国大陆地区有效;\n售后服务热线:400-610-5688",  | 
            |
| 113 | 
                + "description": u"1、该电子保修卡仅限本人使用;\n2、该保修服务仅适用于中国大陆地区销售的腾龙正规产品,非正品行货产品无法享受此服务;\n3、5+1增值保修服务起始日以发票或订单的购买日期为准;\n4、双休日以及法定节假日不提供维修,敬请谅解。详情请见腾龙官方网站“服务与支持”页面信息(http://www.tamron.com.cn/service/index.shtml);\n5、腾龙光学(上海)有限公司对在中国大陆地区销售的腾龙公司正规产品提供5年免费维修服务。在按照使用说明书正常使用的情况下,如果出现故障现象,请凭保修卡以及正规原始发票进行免费保修(保险、运费以及其他连带费用除外);\n6、以下情况属于收费维修范围: a. 不能出示有效保修卡以及购买原始发票。b. 私自修理、改造、分解、清洁等造成的故障。c. 未遵守使用说明书而进行错误操作、维护,在恶劣环境下使用而造成的故障。d. 震动、摔落、进水、受潮、进沙土、进灰、发霉等不当保管造成的故障。e. 正常磨耗和自然灾害所造成的故障;\n7、以下情况可能拒绝维修:a. 产品损毁严重已无维修价值。b. 私自拆解造成产品50%以上的解体。c. 产品停产超过7年。d. 非性能故障的外观零件,不提供更换;\n8、前盖、后盖、遮光罩、脚架接环等配件不属于免费保修范围;\n9、保修卡和保修规定仅限在中国大陆地区有效;\n售后服务热线:400-610-5688",  | 
            |
| 131 | 114 | 
                "location_id_list": [  | 
            
| 132 | 115 | 
                ],  | 
            
| 133 | 116 | 
                             'date_info': {
               | 
            
                @@ -141,35 +124,35 @@ MEMBER_CARD_UPDATE_INFO = {
               | 
            ||
| 141 | 124 | 
                "begin_hour": 9,  | 
            
| 142 | 125 | 
                "end_hour": 17,  | 
            
| 143 | 126 | 
                "begin_minute": 0,  | 
            
| 144 | 
                - "end_minute": 45  | 
            |
| 127 | 
                + "end_minute": 0  | 
            |
| 145 | 128 | 
                },  | 
            
| 146 | 129 | 
                                 {
               | 
            
| 147 | 130 | 
                "type": "TUESDAY",  | 
            
| 148 | 131 | 
                "begin_hour": 9,  | 
            
| 149 | 132 | 
                "end_hour": 17,  | 
            
| 150 | 133 | 
                "begin_minute": 0,  | 
            
| 151 | 
                - "end_minute": 45  | 
            |
| 134 | 
                + "end_minute": 0  | 
            |
| 152 | 135 | 
                },  | 
            
| 153 | 136 | 
                                 {
               | 
            
| 154 | 137 | 
                "type": "WEDNESDAY",  | 
            
| 155 | 138 | 
                "begin_hour": 9,  | 
            
| 156 | 139 | 
                "end_hour": 17,  | 
            
| 157 | 140 | 
                "begin_minute": 0,  | 
            
| 158 | 
                - "end_minute": 45  | 
            |
| 141 | 
                + "end_minute": 0  | 
            |
| 159 | 142 | 
                },  | 
            
| 160 | 143 | 
                                 {
               | 
            
| 161 | 144 | 
                "type": "THURSDAY",  | 
            
| 162 | 145 | 
                "begin_hour": 9,  | 
            
| 163 | 146 | 
                "end_hour": 17,  | 
            
| 164 | 147 | 
                "begin_minute": 0,  | 
            
| 165 | 
                - "end_minute": 45  | 
            |
| 148 | 
                + "end_minute": 0  | 
            |
| 166 | 149 | 
                },  | 
            
| 167 | 150 | 
                                 {
               | 
            
| 168 | 151 | 
                "type": "FRIDAY",  | 
            
| 169 | 152 | 
                "begin_hour": 9,  | 
            
| 170 | 153 | 
                "end_hour": 17,  | 
            
| 171 | 154 | 
                "begin_minute": 0,  | 
            
| 172 | 
                - "end_minute": 45  | 
            |
| 155 | 
                + "end_minute": 0  | 
            |
| 173 | 156 | 
                },  | 
            
| 174 | 157 | 
                ],  | 
            
| 175 | 158 | 
                },  | 
            
                @@ -185,8 +168,7 @@ MEMBER_CARD_UPDATE_INFO = {
               | 
            ||
| 185 | 168 | 
                },  | 
            
| 186 | 169 | 
                }  | 
            
| 187 | 170 | 
                 | 
            
| 188 | 
                -membercard = MemberCard(appid=appid, secret=appsecret, token=token)  | 
            |
| 189 | 
                -# data = membercard.create(MEMBER_CARD_CREATE_INFO)  | 
            |
| 190 | 
                -# print(data)  | 
            |
| 191 | 
                -data = membercard.update(MEMBER_CARD_UPDATE_INFO)  | 
            |
| 192 | 
                -print(data)  | 
            |
| 171 | 
                +  | 
            |
| 172 | 
                +def update_membercard():  | 
            |
| 173 | 
                + data = membercard_update(MEMBER_CARD_UPDATE_INFO, appid=appid, secret=appsecret, storage=RedisStorage(r))  | 
            |
| 174 | 
                + print(data)  |